"""10. 统计单词
读取练习8生成的文本文件，完成单词统计。

要求
定义一个函数 statistics(dist)，完成统计单词。

参数：dist 单词表文本文件（每行：单词 次数）

返回: 一个字典 {'单词数': xxx, '总次数': xxx, '平均次数': xxx.xxx, '最多次数单词': 'aaaaa', '最长单词': 'aaaaa'}
"""

import re
import string

def statistics(dist):
        
    # 字典
    words = {}

    # 读文本文件
    with open('words.txt', 'r') as f:
        for line in f:
            # 将每一行按空白切片成单词
            word, count = line.split()
            words[word] = int(count)

    # 把字典转换为列表
    wlist = list(words.items())

    result = {}
    result['单词数'] = len(wlist)
    result['总次数'] = sum([x[1] for x in wlist])

    # 按次数排序
    wlist.sort(key=lambda x:x[1])
    result['最多次数单词'] = wlist[-1][0]

    # 按单词长度排序
    wlist.sort(key=lambda x:len(x[0]))
    result["最长单词"] = wlist[-1][0]

    # 返回字典
    return result

if __name__ == '__main__':
    print(statistics('words.txt'))